This invention relates to data processing systems and, more particularly, to a data processing system including a peripheral storage device, such as a disk drive, having at least one recording medium, such as a recording disk, and means for writing data onto and reading data from the recording disk.
Such systems are, of course, well known in the art and traditionally further include a disk drive controller coupled to the disk drive and responsive to predetermined instructions and command data for controlling the writing of data onto and reading of data from the recording disk, as well as a main memory coupled to the controller for storing data to be written onto to read from the disk and the command data. Lastly, a CPU is included for supplying the predetermined instructions to the controller and for addressing the main memory.
As is conventional in prior art systems, each recording surface of a disk is divided into a plurality of tracks and a plurality of sectors. Each sector of track normally contains both header data (data containing the disk address of that track-sector) and file data (data corresponding to a page of a particular file of data). In the past, a file directory has been employed to list the first page of every file recorded on the disk surface, since the various pages of a file need not be recorded at consecutive sectors, and usually are not. However, the file directory is itself a file recorded on the disk surface.
The obvious disadvantage of the above arrangement is that if the file directory were damaged or destroyed due to a head crash or the like, it is virtually impossible to use the disk thereafter. The disk might just as well be discarded and the data contained thereon lost.
Another problem with prior art systems is that sometimes invalid disk command data is accessed from main memory, such as through an improper or erroneous addressing or the like. Invalid disk command data might result in the disk drive controller improperly or incorrectly controlling the disk drive.
It would be desirable, therefore, to provide a data processing system which is capable of sustained operation notwithstanding the damage or destruction of a file directory recorded on the disk or other recording medium. It would further be desirable to be able to reconstruct a damaged or destroyed file directory from the remaining data recorded on the disk. It would also be desirable to be able to verify the validity of command data accessed from the main memory prior to use thereof by the controller in the event that it may be invalid.